Computer software systems are prevalent in almost all facets of modern life. Many businesses, such as financial service providers, Internet web sites, and shipping companies, just to name a few, rely on computer software systems for day to day activities. Often, computer software systems (or “software systems”) may dynamically evolve, where functions of the software systems are added, deleted, or modified to provide enhancements for users of the software system.
A difficulty associated with such enhancements may include ensuring that all necessary program modules within a software system have been modified appropriately. By way of example, adding a new function to a software system may require modifications to three program modules within the software system. Failure to modify all three program modules may result in the function and/or the entire software system not being able to operate.
Another difficulty may involve determining what developer, team or office is responsible for an enhancement. Modifications to a software system may be performed by different developers and/or teams. Developers or teams may be at different physical locations (e.g., different offices), and people or members of the same team may be at different locations. The team and/or developer responsible for a particular enhancement may be difficult to determine.
Another problem may involve measuring the quality of the enhancements being created. Various enhancements may have a number of areas for potential error. Objectively evaluating the performance and work quality of the developer may be difficult.
Other drawbacks may also exist.